Computers are often linked together through networks to allow the resources of a computer at one location to be utilized by users located at a different location. In a distributed environment such as this, computers known as servers perform various tasks for client computers that communicate with the servers over a network. Servers enable sharing of files and other resources between client computers and the server. As an example, a world wide web (“web”) server may provide documents and other resources to client computers over the Internet.
It is often necessary to manage the operation of a server computer. For instance, it may be desirable to determine the relative health of a server computer by viewing screen display information and by interacting with the server through user input devices. This is especially true for server computers that maintain resources that are utilized by a large number of client computers, such as within a corporate network or the Internet. For many conventional systems, the technician that needs to view the screen displays and interact with the server being managed is required to be physically located at the site of the server. However, it is not always feasible for a technician to be physically present at the location of the server computer.
For example, a system administrator of a corporate network may be present at one location while the servers of the corporate network may be spread around the country or even the globe. To effectively manage the servers on the corporate network, the system administrator must be able to monitor and control each of the server computers, regardless of their location. Because the system administrator cannot be physically present at each server to be managed, effective management of the server computers becomes very difficult if not impossible. As a result, it can be very costly to maintain servers located in disparate physical locations.
Some systems for remotely administering server computers utilize a server computer management device connected to each server computer. Each management device connects to a video output of a server computer and is operative to compress and transmit the video output of the server computer to a remote computer via a network connection. User input received at the remote computer is transmitted to the management device and is provided by the management device to the server computer as if the input was made locally to the server computer. In this manner, the management device can receive user input commands provided at the remote computer and provide the input commands to the server computer as if the input commands were physically generated by a user at the server computer. A user of the remote computer can control the operation of the server computer from a remote location and perform administration tasks as necessary.
Because many server computers are “headless” and do not have a directly attached display or input devices, installing and configuring a management device has previously been very difficult. In particular, some management devices implement custom communication hardware for communicating with the server computer. Because custom hardware is utilized by the management device, a hardware driver must be provided for each operating system with which the management device will be utilized. The hardware driver must then be installed each time a management device is attached to a server computer. Because server computers are typically headless, it can be very difficult to ensure that a driver has been successfully installed for communicating with the management device.
Another problem with previous management devices relates to the redirection of the video output of the server computer to a remote computer. In particular, when a user of the remote computer connected to the management device moves a mouse cursor at the remote computer or other type of input pointer, there can be a long delay before the movement is reflected in the redirected video output of the server computer that is displayed at the remote computer. This can be very frustrating and confusing for a user. Accordingly, there is a need for an improved management device that may be installed and utilized without the need for a custom hardware driver and that can improve the speed of a user input cursor on a remote computer when redirecting video from the server computer. It is with respect to these considerations and others that the present invention has been made.